package dawi.fcs.servicio.servicio.impl;

import java.util.HashMap;
import java.util.List;

import dawi.fcs.dominio.ProcesoActividad;
import dawi.fcs.dominio.dto.DtoProcesoActividad;
import dawi.fcs.servicio.dao.ProcesoActividadDao;
import dawi.fcs.servicio.factory.DAOFactory;
import dawi.fcs.servicio.generico.GenericoServicioImpl;
import dawi.fcs.servicio.servicio.ProcesoActividadServicio;

public class ProcesoActividadServicioImpl extends GenericoServicioImpl
		implements ProcesoActividadServicio {
	private ProcesoActividadDao dao;

	public ProcesoActividadServicioImpl() {
		dao = DAOFactory.getFactorty(DAOFactory.MYSQL).getProcesoActividadDao();
		this.setGenericoDao(dao);
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	@Override
	public List<DtoProcesoActividad> ListarPaginacion(
			HashMap<String, Object> map) {
		List list = dao
				.listarPorQuery("procesoActividad.listarPaginacion", map);
		return list;
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	@Override
	public List<ProcesoActividad> ListarPredecesorSucesor(Integer proceso,
			Integer actividad) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("idProceso", proceso);
		map.put("idActividad", actividad);

		List list = dao.listarPorQuery(
				"procesoActividad.listaSucesorPredecesor", map);
		return list;
	}

	@SuppressWarnings("rawtypes")
	@Override
	public Double obtenerCostoTotalPorcenaje(Integer proceso) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("idProceso", proceso);
		List list = dao.listarPorQuery(
				"procesoActividad.obtenerCostoPorcentajeTotal", map);
		return (Double) list.get(0);
	}

	@Override
	public Integer contarExpedientePorActividad(Integer actividad) {
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("actividad", actividad);
		return dao.contar("procesoActividad.contarExpedientePorActividad", map);
	}
}
